iT邦幫忙

2023 iThome 鐵人賽

DAY 2
2

在深入實作細節之前,我們先要瞭解系統的架構與功能規劃。
一個良好的架構不僅定義組件與互動,更為後續的擴展、維護與發展指引出一條明確又不崎嶇的道路。

Overview

overview

我們的核心架構與 Stack 包含:

  1. Web frontend

    • 使用 Next.js 框架開發,部署在 Vercel 上
    • 透過 API 與後端服務溝通。
  2. Backend service

    • 使用 Laravel 開發 API,提供 CRUD 的業務邏輯。
    • 部署在 Google Cloud Run,實現無伺服器架構。
    • 使用 Google Cloud SQL 管理資料。
  3. Search service

    • 整合 Algolia 提供搜尋與推薦功能。
    • Laravel 後端資料會建立 Algolia 索引以加速取用。
  4. Auth Service

    • 使用 GCP identity platform 或 Auth0 來管理使用者與第三方登入的業務。
  5. Data Crawler

    • 收集與更新資料的爬蟲服務,從 podcast feeds 擷取資訊。
    • 資料會傳送到後端進行儲存與處理。
  6. Speech-to-Text Service

    • 使用 Colab 執行 Speech-to-Text 的模型將聲音訊號轉錄成文字。
    • 轉錄資料會最佳化供 Algolia 搜尋。
  7. Log & Moniter

    • 使用 GCP Loggin & Trace 或 Sentry 來建立設施監控或是應用程式效能觀察。

產品功能與測試案例

我們的產品目標是讓使用者更便利地搜尋到符合的 Podcast。所以我們需要一些簡單的 User story 以便測試來確認功能:

User story

  • 身為使用者,我可以用關鍵字搜尋 Podcast
  • (optional) 身為使用者,我可以以類別/流派瀏覽 Podcast
  • 身為使用者,我可以看 Podcast 詳細資料像是集數列表
  • 身為使用者,我可以訂閱 Podcast 更新
  • 身為使用者,我可以收到新集數通知
  • (optional) 身為使用者,我可以看到個人化 Podcast 推薦
  • 身為使用者,我可以搜尋 Podcast 集數轉錄的字幕

透過明確的架構規劃與功能定義,就可以開始加速後續服務的建立。
在中間可能會有需要修正,或是發現需要更換工具的情況,所以會在過程中去重複確認情境跟工具的契合度。


上一篇
#0 Why & How?
下一篇
#2 萬事俱備 只欠開始! 專案與雲服務初始化
系列文
Laravel 擴展宇宙:從 1 到 100 十倍速打造產品獨角獸30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言